package com.swapbytes.jrexportcmd;

import java.util.Map;

/**
 * Clase principal donde se inicia la ejecución de la aplicación.
 *
 * @author Nicola Strappazzon C., nicola51980@gmail.com
 * @version 1.1.0
 */
public class Main {
    public static void main(String[] args) {
        Cli      cli = new Cli();
        DataBase db  = new DataBase();
        Export   jre = new Export();

		// Asignamos el pase de argumentos capturados por Java.
        cli.setArgs(args);

		// Capturamos los argumentos en limpio para signarlos especificamente a
		// cada metodo que le corresponda.
        String host   = cli.getHost();
        String dbname = cli.getDB();
        String user   = cli.getUser();
        String pass   = cli.getPassword();
        String input  = cli.getInput();
        String output = cli.getOutput();
        Map    params = cli.getParameters();
        Types.Driver  driver = cli.getDrvier();
		Types.Format  format = cli.getFormat();
		Types.Stream  stream = cli.getStream();

		// Definimos los parametros capturados por la linea de comandos a la clase
		// encargada de la conexion al manejador de base de datos.
        db.setDriver(driver);
        db.setHost(host);
        db.setDB(dbname);
        db.setUser(user);
        db.setPassword(pass);

		// Definimos los parametros capturados por la linea de comandos a la clase
		// encargada de generar el reporte.
        jre.setParameters(params);
        jre.setInput(input);
		jre.setOutput(output);
		jre.setFormat(format);
		jre.setStream(stream);

		// Iniciamos el proceso para generar los reportes.
        db.connect();
		jre.setConnection(db.getConnection());
        jre.loadReport();
		jre.generateReport();
        db.disconnect();
    }
}